<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>

</head>

<body>

    <script>
         function myajax(type,url,params){
            
            var p = new Promise((res,rej)=>{ //这个函数内的代码会被同步执行
                $.ajax({         // ajax 本身是异步代码
                    url,
                    type,
                    data:{...params},
                    error(err){ //请求失败后调用的函数  得到一个错误对象

                        rej(err); //rej 是异步执行失败后 调用的Promise的函数
                    },
                    success(data){ // 请求成功后调用的函数 得到后端响应的函数
                        res(data); //rej 是异步执行成功后 调用的Promise的函数
                    },
                })

            })
        }
    
        var p1 = myajax("get","https://cnodejs.org/api/v1/topics",{page:1})
        var p2 = myajax("get","https://cnodejs.org/api/v1/topics",{page:2})
        var p3 = myajax("get","https://cnodejs.org/api/v1/topics",{page:3})
       // all 表示多个请求结束后  执行
        Promise.all([p1, p2, p3]).then((res)=>{
            console.log(res);
        }).catch(function (err){
            console.log(err);
        })
        
          // 获取到多个请求中第一个执行结束的结果
        Promise.race([p1, p2, p3]).then((res)=>{
            console.log(res);
        }).catch(function (err){
            console.log(err);
        })
    </script>
</body>
</html>